﻿using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

namespace RoslynCompile
{
    /// <summary>
    /// 读公共区基对象
    /// </summary>
    public class ClassBasePublicR
    {
        /// <summary>
        /// 事件触发位
        /// </summary>
        public bool[] EventTrigger { get; set; } = new bool[16];
        /// <summary>
        /// 心跳
        /// </summary>
        public ushort Heart { get; set; }
    }
    /// <summary>
    /// 写公共区基对象
    /// </summary>
    public class ClassBasePublicW
    {
        /// <summary>
        /// 心跳
        /// </summary>
        public ushort Heart { get; set; }
    }
    /// <summary>
    /// 读事件基对象
    /// </summary>
    public class ClassBaseEventR
    {
        /// <summary>
        /// PLC事件预留地址
        /// </summary>
        public short PlcEvent { get; set; }
        /// <summary>
        /// 事件触发自增变量
        /// </summary>
        public short SequenceId { get; set; }
    }
    /// <summary>
    /// 写事件基对象
    /// </summary>
    public class ClassBaseEventW
    {
        /// <summary>
        /// 事件触发自增变量
        /// </summary>
        public short SequenceId { get; set; }
        /// <summary>
        /// ACK
        /// </summary>
        public short Ack { get; set; }
        /// <summary>
        /// 返回PLC结果
        /// </summary>
        public short ResultCode { get; set; }
        /// <summary>
        /// 事件反馈字符串
        /// </summary>
        [StringLength(62)]
        public string Message { get; set; }
    }
    /// <summary>
    /// 伺服位置结构
    /// </summary>
    public class ClassParameterServoPos
    {
        /// <summary>
        /// 位置
        /// </summary>
        public float P_S_WorkPos { get; set; }
        /// <summary>
        /// 位置速度
        /// </summary>
        public float P_S_WorkSpeed { get; set; }
    }
    /// <summary>
    /// 伺服参数
    /// </summary>
    public class ClassParameterServo
    {
        /// <summary>
        /// 加速度
        /// </summary>
        public float P_S_Acc { get; set; }
        /// <summary>
        /// 减速度
        /// </summary>
        public float P_S_Dec { get; set; }
        /// <summary>
        /// JOG速度百分比
        /// </summary>
        public float P_S_Override { get; set; }
        /// <summary>
        /// 原点速度
        /// </summary>
        public float P_S_HomeSpeed { get; set; }
        /// <summary>
        /// 原点位置
        /// </summary>
        public float P_S_HomePos { get; set; }
        /// <summary>
        /// JOG速度
        /// </summary>
        public float P_S_JogSpeed { get; set; }
        /// <summary>
        /// 回原点模式
        /// </summary>
        public short P_S_HomeMode { get; set; }
        /// <summary>
        /// 伺服位置参数结构数组
        /// </summary>
        public ClassParameterServoPos[] ClassParameterServoPosArr_10 { get; set; } = new ClassParameterServoPos[10]
        {
             new ClassParameterServoPos(),
             new ClassParameterServoPos(),
             new ClassParameterServoPos(),
             new ClassParameterServoPos(),
             new ClassParameterServoPos(),
             new ClassParameterServoPos(),
             new ClassParameterServoPos(),
             new ClassParameterServoPos(),
             new ClassParameterServoPos(),
             new ClassParameterServoPos()
        };
    }
    /// <summary>
    /// 感应器参数
    /// </summary>
    public class ClassParameterSensor
    {
        /// <summary>
        /// 感应器屏蔽
        /// </summary>
        public bool[] P_I_ByPassArr { get; set; } = new bool[16];
        /// <summary>
        /// 感应器延时
        /// </summary>
        public int[] P_I_DelayArr { get; set; } = new int[16];
    }
    /// <summary>
    /// 工艺参数上下限-玻璃体
    /// </summary>
    public class ClassParameterTechnologyLimitGlassWidth
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// St3焊点中心到玻璃体下限
    /// </summary>
    public class ClassParameterTechnologyLimitGlassPointDis
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// ST4桥丝拉力
    /// </summary>
    public class ClassParameterTechnologyLimitTension
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// ST5桥丝长度
    /// </summary>
    public class ClassParameterTechnologyLimitWireLen
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// ST5Body焊点宽度
    /// </summary>
    public class ClassParameterTechnologyLimitBodyPointWidth
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// ST5Pin焊点宽度
    /// </summary>
    public class ClassParameterTechnologyLimitBodyPinPointWidth
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// ST5Body焊点长度
    /// </summary>
    public class ClassParameterTechnologyLimitBodyPointLen
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// ST5Pin焊点长度
    /// </summary>
    public class ClassParameterTechnologyLimitPinPointLen
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// ST5Body焊点到玻璃体距离
    /// </summary>
    public class ClassParameterTechnologyLimitBodyPointDis
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// ST5Pin焊点到玻璃体距离
    /// </summary>
    public class ClassParameterTechnologyLimitPinPointDis
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// St5焊点到玻璃体距离之和
    /// </summary>
    public class ClassParameterTechnologyLimitPointDis
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// ST6电阻值
    /// </summary>
    public class ClassParameterTechnologyLimitResis
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// 工艺参数
    /// </summary>
    public class ClassParameterTechnology
    {
        /// <summary>
        /// 工艺参数上下限-玻璃体
        /// </summary>
        public ClassParameterTechnologyLimitGlassWidth ClassParameterTechnologyLimitGlassWidth { get; set; } = new ClassParameterTechnologyLimitGlassWidth();
        /// <summary>
        /// St3焊点中心到玻璃体下限
        /// </summary>
        public ClassParameterTechnologyLimitGlassPointDis ClassParameterTechnologyLimitGlassPointDis { get; set; } = new ClassParameterTechnologyLimitGlassPointDis();
        /// <summary>
        /// ST4桥丝拉力
        /// </summary>
        public ClassParameterTechnologyLimitTension ClassParameterTechnologyLimitTension { get; set; } = new ClassParameterTechnologyLimitTension();
        /// <summary>
        /// ST4Body音圈电机焊针压力
        /// </summary>
        public float P_T_BodySmacPress { get; set; }
        /// <summary>
        /// ST4Pin音圈电机焊针压力
        /// </summary>
        public float P_T_PinSmacPress { get; set; }
        /// <summary>
        /// ST5桥丝长度
        /// </summary>
        public ClassParameterTechnologyLimitWireLen ClassParameterTechnologyLimitWireLen { get; set; } = new ClassParameterTechnologyLimitWireLen();
        /// <summary>
        /// ST5Body焊点宽度
        /// </summary>
        public ClassParameterTechnologyLimitBodyPointWidth ClassParameterTechnologyLimitBodyPointWidth { get; set; } = new ClassParameterTechnologyLimitBodyPointWidth();
        /// <summary>
        /// ST5Pin焊点宽度
        /// </summary>
        public ClassParameterTechnologyLimitBodyPinPointWidth ClassParameterTechnologyLimitBodyPinPointWidth { get; set; } = new ClassParameterTechnologyLimitBodyPinPointWidth();
        /// <summary>
        /// ST5Body焊点长度
        /// </summary>
        public ClassParameterTechnologyLimitBodyPointLen ClassParameterTechnologyLimitBodyPointLen { get; set; } = new ClassParameterTechnologyLimitBodyPointLen();
        /// <summary>
        /// ST5Pin焊点长度
        /// </summary>
        public ClassParameterTechnologyLimitPinPointLen ClassParameterTechnologyLimitPinPointLen { get; set; } = new ClassParameterTechnologyLimitPinPointLen();
        /// <summary>
        /// ST5Body焊点到玻璃体距离
        /// </summary>
        public ClassParameterTechnologyLimitBodyPointDis ClassParameterTechnologyLimitBodyPointDis { get; set; } = new ClassParameterTechnologyLimitBodyPointDis();
        /// <summary>
        /// ST5Pin焊点到玻璃体距离
        /// </summary>
        public ClassParameterTechnologyLimitPinPointDis ClassParameterTechnologyLimitPinPointDis { get; set; } = new ClassParameterTechnologyLimitPinPointDis();
        /// <summary>
        /// St5焊点到玻璃体距离之和
        /// </summary>
        public ClassParameterTechnologyLimitPointDis ClassParameterTechnologyLimitPointDis { get; set; } = new ClassParameterTechnologyLimitPointDis();
        /// <summary>
        /// ST6电阻值
        /// </summary>
        public ClassParameterTechnologyLimitResis ClassParameterTechnologyLimitResis { get; set; } = new ClassParameterTechnologyLimitResis();
    }
    /// <summary>
    /// 寿命管控参数
    /// </summary>
    public class ClassParameterLifeControl
    {
        /// <summary>
        /// Body焊针易损次数
        /// </summary>
        public int P_Q_BodyWeldNeedle { get; set; }
        /// <summary>
        /// Pin焊针易损次数
        /// </summary>
        public int P_Q_PinWeldNeedle { get; set; }
        /// <summary>
        /// 左电阻探针易损次数
        /// </summary>
        public int P_Q_ResistNeedleL { get; set; }
        /// <summary>
        /// 右电阻探针易损次数
        /// </summary>
        public int P_Q_ResistNeedleR { get; set; }
        /// <summary>
        /// 预留01
        /// </summary>
        public int P_Q_Reserved01 { get; set; }
        /// <summary>
        /// 预留02
        /// </summary>
        public int P_Q_Reserved02 { get; set; }
    }
    /// <summary>
    /// 电极针参数
    /// </summary>
    public class ClassParameterNeedle
    {
        /// <summary>
        /// 桥丝直径
        /// </summary>
        public float P_N_WireDia { get; set; }
        /// <summary>
        /// 焊接桥丝长度
        /// </summary>
        public float P_N_WireLen { get; set; }
        /// <summary>
        /// 左偏心距补偿
        /// </summary>
        public float P_N_OffsetL { get; set; }
        /// <summary>
        /// 右偏心距补偿
        /// </summary>
        public float P_N_OffsetR { get; set; }
        /// <summary>
        /// X轴补偿
        /// </summary>
        public float P_N_OffsetX { get; set; }
        /// <summary>
        /// 桥丝距产品高度
        /// </summary>
        public float P_N_TensionOffsetProduct { get; set; }
        /// <summary>
        /// 桥丝拉力上限
        /// </summary>
        public float P_N_TensionLimitH { get; set; }
        /// <summary>
        /// 桥丝拉力下限
        /// </summary>
        public float P_N_TensionLimitL { get; set; }
        /// <summary>
        /// 转塔直径
        /// </summary>
        public float P_N_TurretDia { get; set; }
        /// <summary>
        /// 桥丝卷直径
        /// </summary>
        public float P_N_FeedDia { get; set; }
        /// <summary>
        /// 桥丝卷调整速度
        /// </summary>
        public float P_N_FeedAdjustSpeed { get; set; }
        /// <summary>
        /// X轴范围下限
        /// </summary>
        public float P_N_XServoLimitL { get; set; }
        /// <summary>
        /// X轴范围上限
        /// </summary>
        public float P_N_XServoLimitH { get; set; }
        /// <summary>
        /// Y左轴范围下限
        /// </summary>
        public float P_N_YLServoLimitL { get; set; }
        /// <summary>
        /// Y左轴范围上限
        /// </summary>
        public float P_N_YLServoLimitH { get; set; }
        /// <summary>
        /// Y右轴范围下限
        /// </summary>
        public float P_N_YRServoLimitL { get; set; }
        /// <summary>
        /// Y右轴范围上限
        /// </summary>
        public float P_N_YRServoLimitH { get; set; }
        /// <summary>
        /// X轴校准位置
        /// </summary>
        public float P_N_XCheckPos { get; set; }
        /// <summary>
        /// YL轴校准位置
        /// </summary>
        public float P_N_YLCheckPos { get; set; }
        /// <summary>
        /// YR轴校准位置
        /// </summary>
        public float P_N_YRCheckPos { get; set; }
        /// <summary>
        /// 校准针间距
        /// </summary>
        public float P_N_CheckPinGap { get; set; }
        /// <summary>
        /// 定点焊X轴位置
        /// </summary>
        public float P_N_XFixedPoint { get; set; }
        /// <summary>
        /// 定点焊YL轴位置
        /// </summary>
        public float P_N_YLFixedPoint { get; set; }
        /// <summary>
        /// 定点焊YR轴位置
        /// </summary>
        public float P_N_YRFixedPoint { get; set; }
        /// <summary>
        /// 电极针调整速度
        /// </summary>
        public float P_N_WireLenChangSpeed { get; set; }
        /// <summary>
        /// 直接定义电极针间距
        /// </summary>
        public float P_N_WireDerictLen { get; set; }
    }
    /// <summary>
    /// 音圈电机参数
    /// </summary>
    public class ClassParameterVoiceCoilMotor
    {
        /// <summary>
        /// 运行速度
        /// </summary>
        public int P_Y_Speed { get; set; }
        /// <summary>
        /// 工作位置
        /// </summary>
        public int P_Y_WorkPosition { get; set; }
        /// <summary>
        /// 工作压力
        /// </summary>
        public float P_Y_Pression { get; set; }
        /// <summary>
        /// 校准位置
        /// </summary>
        public int P_Y_CheckPosition { get; set; }
        /// <summary>
        /// 等待位置
        /// </summary>
        public int P_Y_WaitPostion { get; set; }
        /// <summary>
        /// 位置误差
        /// </summary>
        public int P_Y_PositionError { get; set; }
        /// <summary>
        /// 软着陆速度
        /// </summary>
        public int P_Y_VmSpeed { get; set; }
        /// <summary>
        /// 软着陆加速度
        /// </summary>
        public int P_Y_VmAcc { get; set; }
        /// <summary>
        /// 手动定点位置
        /// </summary>
        public int P_Y_DirectPos { get; set; }
        /// <summary>
        /// 手动定点速度
        /// </summary>
        public int P_Y_DirectSpeed { get; set; }
        /// <summary>
        /// 称数据输入1
        /// </summary>
        public float P_Y_Step1ForceIn { get; set; }
        /// <summary>
        /// 称数据输入2
        /// </summary>
        public float P_Y_Step2ForceIn { get; set; }
        /// <summary>
        /// 次数设定
        /// </summary>
        public int P_Y_SetCount { get; set; }
        /// <summary>
        /// 安全位置
        /// </summary>
        public int P_Y_SafeLocation { get; set; }
    }
    /// <summary>
    /// 左音圈电机参数
    /// </summary>
    public class ClassParameterVoiceCoilMotorL
    {
        /// <summary>
        /// 音圈电机参数
        /// </summary>
        public ClassParameterVoiceCoilMotor ClassParameterVoiceCoilMotor { get; set; } = new ClassParameterVoiceCoilMotor();
    }
    /// <summary>
    /// 右音圈电机参数
    /// </summary>
    public class ClassParameterVoiceCoilMotorR
    {
        /// <summary>
        /// 音圈电机参数
        /// </summary>
        public ClassParameterVoiceCoilMotor ClassParameterVoiceCoilMotor { get; set; } = new ClassParameterVoiceCoilMotor();
    }
    /// <summary>
    /// 电阻测试参数
    /// </summary>
    public class ClassParamterResistanceTest
    {
        /// <summary>
        /// 校验块电阻值
        /// </summary>
        public float P_M_CheckResist { get; set; }
        /// <summary>
        /// 允许误差
        /// </summary>
        public float P_M_CheckOffset { get; set; }
    }
    /// <summary>
    /// 参数
    /// </summary>
    public class ClassParameter
    {
        /// <summary>
        /// 伺服参数数组
        /// </summary>
        public ClassParameterServo[] ClassParameterServoArr_6 { get; set; } = new ClassParameterServo[6]
        {
             new ClassParameterServo(),
             new ClassParameterServo(),
             new ClassParameterServo(),
             new ClassParameterServo(),
             new ClassParameterServo(),
             new ClassParameterServo()
        };
        /// <summary>
        /// 感应器参数
        /// </summary>
        public ClassParameterSensor ClassParameterSensor { get; set; } = new ClassParameterSensor();
        /// <summary>
        /// 寿命管控参数
        /// </summary>
        public ClassParameterLifeControl ClassParameterLifeControl { get; set; } = new ClassParameterLifeControl();
        /// <summary>
        /// 左音圈电机参数
        /// </summary>
        public ClassParameterVoiceCoilMotorL ClassParameterVoiceCoilMotorL { get; set; } = new ClassParameterVoiceCoilMotorL();
        /// <summary>
        /// 右音圈电机参数
        /// </summary>
        public ClassParameterVoiceCoilMotorR ClassParameterVoiceCoilMotorR { get; set; } = new ClassParameterVoiceCoilMotorR();
        /// <summary>
        /// 电阻测试参数
        /// </summary>
        public ClassParamterResistanceTest ClassParamterResistanceTest { get; set; } = new ClassParamterResistanceTest();
        /// <summary>
        /// 电极针参数
        /// </summary>
        public ClassParameterNeedle ClassParameterNeedle { get; set; } = new ClassParameterNeedle();
        /// <summary>
        /// 连续NG
        /// </summary>
        public ClassParameterContinuousNG ClassParameterContinuousNG { get; set; } = new ClassParameterContinuousNG();
    }
    /// <summary>
    /// 伺服读取
    /// </summary>
    public class ClassServoR
    {
        /// <summary>
        /// 伺服状态Bit
        /// </summary>
        public bool[] Servo_BitR { get; set; } = new bool[32];
        /// <summary>
        /// 当前位置
        /// </summary>
        public float Servo_ActualPositionR { get; set; }
        /// <summary>
        /// 当前速度
        /// </summary>
        public float Servo_ActualVelocityR { get; set; }
        /// <summary>
        /// 自动轴位置编号
        /// </summary>
        public ushort Servo_AutoIndexR { get; set; }
        /// <summary>
        /// 当前轴位置编号
        /// </summary>
        public ushort Servo_CurrIndexR { get; set; }
        /// <summary>
        /// 报警
        /// </summary>
        public bool[] Servo_AralmHMIdiaplayR { get; set; } = new bool[16];
        /// <summary>
        /// 故障代码
        /// </summary>
        public bool[] Servo_FaultCodeR { get; set; } = new bool[16];
    }
    /// <summary>
    /// 伺服写
    /// </summary>
    public class ClassServoW
    {
        /// <summary>
        /// 伺服按钮Bit
        /// </summary>
        public bool[] Servo_BitW { get; set; } = new bool[16];
        /// <summary>
        /// HMI轴位置编号
        /// </summary>
        public ushort Servo_HmiIndexW { get; set; }
    }
    /// <summary>
    /// 伺服数组读
    /// </summary>
    public class ClassServoArrR
    {
        /// <summary>
        /// 伺服读数组
        /// </summary>
        public ClassServoR[] ClassServoRArr_6 { get; set; } = new ClassServoR[6]
        {
             new ClassServoR(),
             new ClassServoR(),
             new ClassServoR(),
             new ClassServoR(),
             new ClassServoR(),
             new ClassServoR()
        };
    }
    /// <summary>
    ///  伺服数组写
    /// </summary>
    public class ClassServoArrW
    {
        /// <summary>
        /// 伺服写数组
        /// </summary>
        public ClassServoW[] ClassServoWArr_6 { get; set; } = new ClassServoW[6]
        {
             new ClassServoW(),
             new ClassServoW(),
             new ClassServoW(),
             new ClassServoW(),
             new ClassServoW(),
             new ClassServoW()
        };
    }
    /// <summary>
    /// 气缸写
    /// </summary>
    public class ClassCylinderW
    {
        /// <summary>
        /// 气缸Bit
        /// </summary>
        public bool[] Cylinder_BitW { get; set; } = new bool[16];
        /// <summary>
        /// 气缸原点延迟
        /// </summary>
        public int Cylinder_BackTimeW { get; set; }
        /// <summary>
        /// 气缸动点延迟
        /// </summary>
        public int Cylinder_GoTimeW { get; set; }
    }
    /// <summary>
    /// 气缸读
    /// </summary>
    public class ClassCylinderR
    {
        /// <summary>
        /// 气缸Bit
        /// </summary>
        public bool[] Cylinder_BitR { get; set; } = new bool[16];
        /// <summary>
        /// 状态显示
        /// </summary>
        public short Cylinder_StatusR { get; set; }
        /// <summary>
        /// 故障显示
        /// </summary>
        public bool[] Cylinder_HmiDisplayR { get; set; } = new bool[16];
    }
    /// <summary>
    /// 气缸数组写
    /// </summary>
    public class ClassCylinderArrW
    {
        /// <summary>
        /// 气缸写数组
        /// </summary>
        public ClassCylinderW[] ClassCylinderWArr_15 { get; set; } = new ClassCylinderW[15]
        {
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW()
        };
    }
    /// <summary>
    /// 气缸数组读
    /// </summary>
    public class ClassCylinderArrR
    {
        /// <summary>
        /// 气缸读数组
        /// </summary>
        public ClassCylinderR[] ClassCylinderRArr_15 { get; set; } = new ClassCylinderR[15]
        {
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR()
        };
    }
    /// <summary>
    /// Body焊接机
    /// </summary>
    public class ClassSolderBodyR
    {
        /// <summary>
        /// 焊接平均电压
        /// </summary>
        public float Solder_VAveR { get; set; }
        /// <summary>
        /// 焊接平均电流
        /// </summary>
        public float Solder_IAveR { get; set; }
        /// <summary>
        /// 焊接平均功率
        /// </summary>
        public float Solder_WAveR { get; set; }
        /// <summary>
        /// 焊接电阻
        /// </summary>
        public float Solder_RR { get; set; }
        /// <summary>
        /// 焊接峰值电压
        /// </summary>
        public float Solder_VPeakR { get; set; }
        /// <summary>
        /// 焊接峰值电流
        /// </summary>
        public float Solder_IPeakR { get; set; }
        /// <summary>
        /// 焊接峰值功率
        /// </summary>
        public float Solder_WPeakR { get; set; }
        /// <summary>
        /// 焊接高度
        /// </summary>
        public int Solder_WeldHeighR { get; set; }
        /// <summary>
        /// 焊接压力
        /// </summary>
        public float Solder_PressureR { get; set; }
    }
    /// <summary>
    /// Pin焊接机
    /// </summary>
    public class ClassSolderPinR
    {
        /// <summary>
        /// 焊接平均电压
        /// </summary>
        public float Solder_VAveR { get; set; }
        /// <summary>
        /// 焊接平均电流
        /// </summary>
        public float Solder_IAveR { get; set; }
        /// <summary>
        /// 焊接平均功率
        /// </summary>
        public float Solder_WAveR { get; set; }
        /// <summary>
        /// 焊接电阻
        /// </summary>
        public float Solder_RR { get; set; }
        /// <summary>
        /// 焊接峰值电压
        /// </summary>
        public float Solder_VPeakR { get; set; }
        /// <summary>
        /// 焊接峰值电流
        /// </summary>
        public float Solder_IPeakR { get; set; }
        /// <summary>
        /// 焊接峰值功率
        /// </summary>
        public float Solder_WPeakR { get; set; }
        /// <summary>
        /// 焊接高度
        /// </summary>
        public int Solder_WeldHeighR { get; set; }
        /// <summary>
        /// 焊接压力
        /// </summary>
        public float Solder_PressureR { get; set; }
    }
    /// <summary>
    /// 音圈电机读
    /// </summary>
    public class ClassVoiceCoilMotorR
    {
        /// <summary>
        /// 状态
        /// </summary>
        public bool[] VoiceCoilMotor_BitStatusR { get; set; } = new bool[16];
        /// <summary>
        /// 位移1
        /// </summary>
        public int VoiceCoilMotor_Pos1R { get; set; }
        /// <summary>
        /// 位移2
        /// </summary>
        public int VoiceCoilMotor_Pos2R { get; set; }
        /// <summary>
        /// 电机SQ值1
        /// </summary>
        public int VoiceCoilMotor_Press1R { get; set; }
        /// <summary>
        /// 电机SQ值2
        /// </summary>
        public int VoiceCoilMotor_Press2R { get; set; }
        /// <summary>
        /// 当前次数
        /// </summary>
        public int VoiceCoilMotor_ActuralCountR { get; set; }
        /// <summary>
        /// 电机力因子
        /// </summary>
        public float VoiceCoilMotor_SmacLfactorR { get; set; }
        /// <summary>
        /// 电机常数
        /// </summary>
        public float VoiceCoilMotor_Lconstant { get; set; }
        /// <summary>
        /// 当前位置
        /// </summary>
        public int VoiceCoilMotor_ActutalPositonR { get; set; }
        /// <summary>
        /// 当前压力
        /// </summary>
        public float VoiceCoilMotor_ActutalPressionR { get; set; }
        /// <summary>
        /// 反馈信息
        /// </summary>
        [StringLength(48)]
        public string VoiceCoilMotor_ReceiveStringR { get; set; }
    }
    /// <summary>
    /// 左音圈电机写
    /// </summary>
    public class ClassVoiceCoilMotorLW
    {
        /// <summary>
        /// 音圈电机Bit
        /// </summary>
        public bool[] VoiceCoilMotor_BitW { get; set; } = new bool[16];
    }
    /// <summary>
    /// 左音圈电机读
    /// </summary>
    public class ClassVoiceCoilMotorLR
    {
        /// <summary>
        /// 音圈电机读
        /// </summary>
        public ClassVoiceCoilMotorR ClassVoiceCoilMotorR { get; set; } = new ClassVoiceCoilMotorR();
    }
    /// <summary>
    /// 右音圈电机写
    /// </summary>
    public class ClassVoiceCoilMotorRW
    {
        /// <summary>
        /// 音圈电机Bit
        /// </summary>
        public bool[] VoiceCoilMotor_BitW { get; set; } = new bool[16];
    }
    /// <summary>
    /// 右音圈电机读
    /// </summary>
    public class ClassVoiceCoilMotorRR
    {
        /// <summary>
        /// 音圈电机读
        /// </summary>
        public ClassVoiceCoilMotorR ClassVoiceCoilMotorR { get; set; } = new ClassVoiceCoilMotorR();
    }
    /// <summary>
    /// 电阻测试仪器写
    /// </summary>
    public class ClassResistanceTestW
    {
        /// <summary>
        /// 电阻测试Bit
        /// </summary>
        public bool[] ResistanceTest_BitW { get; set; } = new bool[16];
    }
    /// <summary>
    /// 电阻测试仪器读
    /// </summary>
    public class ClassResistanceTestR
    {
        /// <summary>
        /// 当前测试值
        /// </summary>
        public float ResistanceTest_CurrentResistR { get; set; }
        /// <summary>
        /// 检验结果
        /// </summary>
        public float ResistanceTest_CheckResultValueR { get; set; }
        /// <summary>
        /// 左电阻探针使用次数
        /// </summary>
        public int ResistanceTest_LSageCountR { get; set; }
        /// <summary>
        /// 右电阻探针使用次数
        /// </summary>
        public int ResistanceTest_RSageCountR { get; set; }
    }
    /// <summary>
    /// 点击针写
    /// </summary>
    public class ClassNeedleW
    {
        /// <summary>
        /// 电极针Bit
        /// </summary>
        public bool[] Needle_BitW { get; set; } = new bool[16];
    }
    /// <summary>
    /// 电极针R
    /// </summary>
    public class ClassNeedleR
    {
        /// <summary>
        /// 电极针Bit读
        /// </summary>
        public bool[] Needle_BitR { get; set; } = new bool[16];
        /// <summary>
        /// 焊接距离
        /// </summary>
        public int Needle_WeldLengthR { get; set; }
        /// <summary>
        /// 当前拉力
        /// </summary>
        public float Needle_ActualTensionR { get; set; }
        /// <summary>
        /// 当前Pin间距
        /// </summary>
        public float Needle_WireCurrentLenR { get; set; }
        /// <summary>
        /// 左焊针使用次数
        /// </summary>
        public int Needle_LUSageCountR { get; set; }
        /// <summary>
        /// 右焊针使用次数
        /// </summary>
        public int Needle_RUSageCountR { get; set; }
        /// <summary>
        /// X轴焊接目标位置
        /// </summary>
        public float Needle_XTargetPosR { get; set; }
        /// <summary>
        /// YL轴焊接目标位置
        /// </summary>
        public float Needle_YLTargetPosR { get; set; }
        /// <summary>
        /// YR轴焊接目标位置
        /// </summary>
        public float Needle_YRTargetPosR { get; set; }
    }
    /// <summary>
    /// 转盘W
    /// </summary>
    public class ClassTurntableW
    {
        /// <summary>
        /// 转盘BitW
        /// </summary>
        public bool[] Turntable_BitW { get; set; } = new bool[16];
        /// <summary>
        /// 转盘预留写
        /// </summary>
        public float[] Turntable_ReservedW { get; set; } = new float[5];
    }
    /// <summary>
    /// 转盘R
    /// </summary>
    public class ClassTurntableR
    {
        /// <summary>
        /// 转盘BitR
        /// </summary>
        public bool[] Turntable_BitR { get; set; } = new bool[8];
        /// <summary>
        /// 转盘位置代码
        /// </summary>
        public byte Turntable_PosCodeR { get; set; }
        /// <summary>
        /// 转盘旋转编码器角度值
        /// </summary>
        public short Turntable_EncodeAngle { get; set; }
        /// <summary>
        /// 转盘预留读
        /// </summary>
        public float[] Turntable_ReservedR { get; set; } = new float[4];
    }
    /// <summary>
    /// 系统
    /// </summary>
    public class ClassSystemW
    {
        /// <summary>
        /// 系统BitW
        /// </summary>
        public bool[] System_BitW { get; set; } = new bool[16];
        /// <summary>
        /// 载具屏蔽按钮
        /// </summary>
        public bool[] System_CarrierByPass { get; set; } = new bool[16];
    }
    /// <summary>
    /// 系统
    /// </summary>
    public class ClassSystemR
    {
        /// <summary>
        /// 系统BitR
        /// </summary>
        public bool[] System_BitR { get; set; } = new bool[16];
        /// <summary>
        /// 产品型号
        /// </summary>
        public int System_PartCodeR { get; set; }
        /// <summary>
        /// 循环时间
        /// </summary>
        public float System_CycleTimeR { get; set; }
        /// <summary>
        /// 总产量
        /// </summary>
        public int System_CounterR { get; set; }
        /// <summary>
        /// OK数量
        /// </summary>
        public int System_CounterOkR { get; set; }
        /// <summary>
        /// NG数量
        /// </summary>
        public int System_CounterNgR { get; set; }
        /// <summary>
        /// OK良率
        /// </summary>
        public float System_OkRateR { get; set; }
        /// <summary>
        /// 机台状态
        /// </summary>
        public ushort System_MachineStatusR { get; set; }
        /// <summary>
        /// 系统报警
        /// </summary>
        public bool[] System_SysAlarmR { get; set; } = new bool[16];
        /// <summary>
        /// 安全门报警
        /// </summary>
        public bool[] System_DoorEstopAlarmR { get; set; } = new bool[16];
        /// <summary>
        /// 紧急停止报警
        /// </summary>
        public bool[] System_EstopAlarmR { get; set; } = new bool[16];
        /// <summary>
        /// 其他报警
        /// </summary>
        public bool[] System_OtherDeviceAlarmR { get; set; } = new bool[16];
        /// <summary>
        /// 通讯报警
        /// </summary>
        public bool[] System_ConnectAlarmR { get; set; } = new bool[16];
        /// <summary>
        /// 物料报警
        /// </summary>
        public bool[] System_NoMaterialAlarmR { get; set; } = new bool[16];
        /// <summary>
        /// 提示1
        /// </summary>
        public bool[] System_Warn1R { get; set; } = new bool[16];
        /// <summary>
        /// 提示2
        /// </summary>
        public bool[] System_Warn2R { get; set; } = new bool[16];
    }
    /// <summary>
    /// 工位
    /// </summary>
    public class ClassStationW
    {
        /// <summary>
        /// 工位BitW
        /// </summary>
        public bool[] Station_BitW { get; set; } = new bool[16];
    }
    /// <summary>
    /// 工位
    /// </summary>
    public class ClassStationR
    {
        /// <summary>
        /// 工位BitR
        /// </summary>
        public bool[] Station_BitR { get; set; } = new bool[16];
        /// <summary>
        /// 总数
        /// </summary>
        public int Station_CounterR { get; set; }
        /// <summary>
        /// OK数
        /// </summary>
        public int Station_CounterOkR { get; set; }
        /// <summary>
        /// NG类别1计数
        /// </summary>
        public int Station_CounterNg1R { get; set; }
        /// <summary>
        /// NG类别2计数
        /// </summary>
        public int Station_CounterNg2R { get; set; }
        /// <summary>
        /// NG类别3计数
        /// </summary>
        public int Station_CounterNg3R { get; set; }
        /// <summary>
        /// 良率
        /// </summary>
        public float Station_KrateOkR { get; set; }
        /// <summary>
        /// CT
        /// </summary>
        public float Station_CycleTime { get; set; }
        /// <summary>
        /// 工站状态
        /// </summary>
        public short Station_StationStatusR { get; set; }
        /// <summary>
        /// 载具状态
        /// </summary>
        public short Station_CarrierStatusR { get; set; }
        /// <summary>
        /// 故障次数
        /// </summary>
        public short Station_AlarmCountR { get; set; }
        /// <summary>
        /// 工站号
        /// </summary>
        public short Station_StationNumberR { get; set; }
        /// <summary>
        /// 其他故障及显示1
        /// </summary>
        public bool[] Station_OtherAlarm1R { get; set; } = new bool[16];
        /// <summary>
        /// 其他故障及显示2
        /// </summary>
        public bool[] Station_OtherAlarm2R { get; set; } = new bool[16];
    }
    /// <summary>
    /// 工位数组W
    /// </summary>
    public class ClassStationArrW
    {
        /// <summary>
        /// 工位数组W
        /// </summary>
        public ClassStationW[] ClassStationWArr_15 { get; set; } = new ClassStationW[15]
        {
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW()
        };
    }
    /// <summary>
    /// 工位数组R
    /// </summary>
    public class ClassStaitonArrR
    {
        /// <summary>
        /// 工位数组R
        /// </summary>
        public ClassStationR[] ClassStationRArr_15 { get; set; } = new ClassStationR[15]
        {
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR()
        };
    }
    /// <summary>
    /// IO
    /// </summary>
    public class ClassIOR
    {
        /// <summary>
        /// IO
        /// </summary>
        public bool[] IO_R { get; set; } = new bool[320];
    }
    /// <summary>
    /// 焊接机BodyAndPin
    /// </summary>
    public class ClassSolderBodyAndPinR
    {
        /// <summary>
        /// Body焊接机
        /// </summary>
        public ClassSolderBodyR ClassSolderBodyR { get; set; } = new ClassSolderBodyR();
        /// <summary>
        /// Pin焊接机
        /// </summary>
        public ClassSolderPinR ClassSolderPinR { get; set; } = new ClassSolderPinR();
    }
    /// <summary>
    /// 音圈电机LAndR W
    /// </summary>
    public class ClassVoiceCoilMotorLRW
    {
        /// <summary>
        /// 左音圈电机写
        /// </summary>
        public ClassVoiceCoilMotorLW ClassVoiceCoilMotorLW { get; set; } = new ClassVoiceCoilMotorLW();
        /// <summary>
        /// 右音圈电机写
        /// </summary>
        public ClassVoiceCoilMotorRW ClassVoiceCoilMotorRW { get; set; } = new ClassVoiceCoilMotorRW();
    }
    /// <summary>
    /// 音圈电机LR R
    /// </summary>
    public class ClassVoiceCoilMotorLRR
    {
        /// <summary>
        /// 左音圈电机读
        /// </summary>
        public ClassVoiceCoilMotorLR ClassVoiceCoilMotorLR { get; set; } = new ClassVoiceCoilMotorLR();
        /// <summary>
        /// 右音圈电机读
        /// </summary>
        public ClassVoiceCoilMotorRR ClassVoiceCoilMotorRR { get; set; } = new ClassVoiceCoilMotorRR();
    }
    /// <summary>
    /// 读
    /// </summary>
    public class ClassCCDR
    {
        /// <summary>
        /// CCD读
        /// </summary>
        public bool[] CCD_BitR { get; set; } = new bool[16];
        /// <summary>
        /// ST3CCD引导X轴补偿值
        /// </summary>
        public float CCD_Target_PosXR { get; set; }
        /// <summary>
        /// ST3CCD引导Y左轴补偿值
        /// </summary>
        public float CCD_Target_PosYLR { get; set; }
        /// <summary>
        /// ST3CCD引导Y右轴补偿值
        /// </summary>
        public float CCD_Target_PosYRR { get; set; }
        /// <summary>
        /// ST3CCD检测玻璃体宽度值
        /// </summary>
        public float CCD_ST3GlassWidthR { get; set; }
        /// <summary>
        /// ST3焊点中心到玻璃体
        /// </summary>
        public float CCD_ST3GlassPointDisR { get; set; }
        /// <summary>
        /// 预留
        /// </summary>
        public float CCD_nParaData2R { get; set; }
        /// <summary>
        /// 预留
        /// </summary>
        public float CCD_nParaData3R { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassCCDW
    {
        /// <summary>
        /// CCD写
        /// </summary>
        public bool[] CCD_BitW { get; set; } = new bool[16];
        /// <summary>
        /// ST5测试结果屏蔽按钮
        /// </summary>
        public bool[] CCD_ResultByPassW { get; set; } = new bool[16];
        /// <summary>
        /// 预留1
        /// </summary>
        public short CCD_nParaData1W { get; set; }
        /// <summary>
        /// 预留2
        /// </summary>
        public float CCD_nParaData2W { get; set; }
        /// <summary>
        /// 预留3
        /// </summary>
        public float CCD_nParaData3W { get; set; }
    }
    /// <summary>
    /// ST3电极针间距
    /// </summary>
    public class ClassParameterTechnologyLimitPinWidth
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// WeldPress
    /// </summary>
    public class ClassParameterTechnologyWeldPress
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// ST11焊缝面积
    /// </summary>
    public class ClassParametetTechnologyWeldArea
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// 工艺参数预留
    /// </summary>
    public class ClassParameterTechnologyPara
    {
        /// <summary>
        /// 预留4
        /// </summary>
        public float[] ParaDataArr { get; set; } = new float[4];
    }
    /// <summary>
    /// 工艺参数
    /// </summary>
    public class ClassOP30ParameterTechnology
    {
        /// <summary>
        /// ST3电极针间距
        /// </summary>
        public ClassParameterTechnologyLimitPinWidth ClassParameterTechnologyLimitPinWidth { get; set; } = new ClassParameterTechnologyLimitPinWidth();
        /// <summary>
        /// WeldPress
        /// </summary>
        public ClassParameterTechnologyWeldPress ClassParameterTechnologyWeldPress { get; set; } = new ClassParameterTechnologyWeldPress();
        /// <summary>
        /// ST11焊缝面积
        /// </summary>
        public ClassParametetTechnologyWeldArea ClassParametetTechnologyWeldArea { get; set; } = new ClassParametetTechnologyWeldArea();
        /// <summary>
        /// 工艺参数预留
        /// </summary>
        public ClassParameterTechnologyPara ClassParameterTechnologyPara { get; set; } = new ClassParameterTechnologyPara();
    }
    /// <summary>
    /// 连续NG
    /// </summary>
    public class ClassParameterContinuousNG
    {
        /// <summary>
        /// 连续NG数
        /// </summary>
        public short[] ContinuousNGArr { get; set; } = new short[10];
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP30Parameter
    {
        /// <summary>
        /// 伺服
        /// </summary>
        public ClassParameterServo[] ClassOP30ParameterServoArr_3 { get; set; } = new ClassParameterServo[3]
        {
             new ClassParameterServo(),
             new ClassParameterServo(),
             new ClassParameterServo()
        };
        /// <summary>
        /// 感应器参数
        /// </summary>
        public ClassParameterSensor ClassParameterSensor { get; set; } = new ClassParameterSensor();
        /// <summary>
        /// 次数管控
        /// </summary>
        public ClassOP30ParameterLifeControl ClassOP30ParameterLifeControl { get; set; } = new ClassOP30ParameterLifeControl();
        /// <summary>
        /// 连续NG
        /// </summary>
        public ClassParameterContinuousNG ClassParameterContinuousNG { get; set; } = new ClassParameterContinuousNG();
    }
    /// <summary>
    /// 次数管控
    /// </summary>
    public class ClassOP30ParameterLifeControl
    {
        /// <summary>
        /// 预留1
        /// </summary>
        public int LifeControl_nParaData1 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int LifeControl_nParaData2 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int LifeControl_nParaData3 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int LifeControl_nParaData4 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int LifeControl_nParaData5 { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int LifeControl_nParaData6 { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP30CCDR
    {
        /// <summary>
        /// CCD读
        /// </summary>
        public bool[] CCD_BitR { get; set; } = new bool[16];
        /// <summary>
        /// 预留4
        /// </summary>
        public float[] ParaDataArr { get; set; } = new float[4];
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP30CCDW
    {
        /// <summary>
        /// CCD写
        /// </summary>
        public bool[] CCD_BitW { get; set; } = new bool[16];
        /// <summary>
        /// ST3CCD模式选择
        /// </summary>
        public short CCD_ST3ModeW { get; set; }
        /// <summary>
        /// 预留1
        /// </summary>
        public short CCD_nParaData1W { get; set; }
        /// <summary>
        /// 预留2
        /// </summary>
        public float CCD_nParaData2W { get; set; }
        /// <summary>
        /// 预留3
        /// </summary>
        public float CCD_nParaData3W { get; set; }
    }
    /// <summary>
    /// OP20参数
    /// </summary>
    public class ClassOP20Parameter
    {
        /// <summary>
        /// 
        /// </summary>
        public ClassParameterServo[] ClassOP20ParamServoArr_4 { get; set; } = new ClassParameterServo[4]
        {
             new ClassParameterServo(),
             new ClassParameterServo(),
             new ClassParameterServo(),
             new ClassParameterServo()
        };
        /// <summary>
        /// OP20感应器参数
        /// </summary>
        public ClassOP20ParameterSensor ClassOP20ParameterSensor { get; set; } = new ClassOP20ParameterSensor();
        /// <summary>
        /// op20寿命管控
        /// </summary>
        public ClassOP20ParameterLifeControl ClassOP20ParameterLifeControl { get; set; } = new ClassOP20ParameterLifeControl();
        /// <summary>
        /// 工艺参数称重
        /// </summary>
        public ClassOP20ParameterWeighTime ClassOP20ParameterWeighTime { get; set; } = new ClassOP20ParameterWeighTime();
        /// <summary>
        /// 工艺参数测高
        /// </summary>
        public ClassOP20ParameterTestHigh ClassOP20ParameterTestHigh { get; set; } = new ClassOP20ParameterTestHigh();
        /// <summary>
        /// 参数压力
        /// </summary>
        public ClassOP20ParameterTechnologyPress ClassOP20ParameterTechnologyPress { get; set; } = new ClassOP20ParameterTechnologyPress();
        /// <summary>
        /// 药仓取药等待时间
        /// </summary>
        public ClassOP20ParameterWaitingTime ClassOP20ParameterWaitingTime { get; set; } = new ClassOP20ParameterWaitingTime();
        /// <summary>
        /// 参数连续NG数
        /// </summary>
        public ClassOP20ParameterStationNG ClassOP20ParameterStationNG { get; set; } = new ClassOP20ParameterStationNG();
        /// <summary>
        /// OP20压力设置
        /// </summary>
        public ClassOP20SetPressure ClassOP20SetPressure { get; set; } = new ClassOP20SetPressure();
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20ParameterServo
    {
        /// <summary>
        /// 加速度
        /// </summary>
        public float P_S_Acc { get; set; }
        /// <summary>
        /// 减速度
        /// </summary>
        public float P_S_Dec { get; set; }
        /// <summary>
        /// JOG速度百分比
        /// </summary>
        public float P_S_Override { get; set; }
        /// <summary>
        /// 原点速度
        /// </summary>
        public float P_S_HomeSpeed { get; set; }
        /// <summary>
        /// 原点位置
        /// </summary>
        public float P_S_HomePos { get; set; }
        /// <summary>
        /// JOG速度
        /// </summary>
        public float P_S_JogSpeed { get; set; }
        /// <summary>
        /// 回原点模式
        /// </summary>
        public short P_S_HomeMode { get; set; }
    }
    /// <summary>
    /// ST1WeighLimit
    /// </summary>
    public class ClassParameterTechnologyST1WeighLimit
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// ST2HightLimit
    /// </summary>
    public class ClassParameterTechnologyST2HightLimit
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassParameterTechnologyST5HightLimit
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassParameterTechnologyST5PressLimit
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// ST6WeighLimit
    /// </summary>
    public class ClassParameterTechnologyST6WeighLimit
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// ST10PressureLimit
    /// </summary>
    public class ClassParameterTechnologyST10PressureLimit
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// ST11WeighLimit
    /// </summary>
    public class ClassParamerterTechnologyST11WeighLimit
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// ST13HightLimit
    /// </summary>
    public class ClassParameterTechnologyST13HightLimit
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// ST13PressureLimit
    /// </summary>
    public class ClassParameterTechnologyST13PressureLimit
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// ST13ODLimit
    /// </summary>
    public class ClassParameterTechnologyST13ODLimit
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// ST4 TemperatureLimit
    /// </summary>
    public class ClassParameterTechnologyST4TemperatureLimit
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// humidness
    /// </summary>
    public class ClassParameterTechnologyST4humidnessLimit
    {
        /// <summary>
        /// 下限
        /// </summary>
        public float LimitL { get; set; }
        /// <summary>
        /// 上限
        /// </summary>
        public float LimitH { get; set; }
    }
    /// <summary>
    /// 工艺参数
    /// </summary>
    public class ClassOP20ParameterTechnology
    {
        /// <summary>
        /// ST1WeighLimit
        /// </summary>
        public ClassParameterTechnologyST1WeighLimit ClassParameterTechnologyST1WeighLimit { get; set; } = new ClassParameterTechnologyST1WeighLimit();
        /// <summary>
        /// ST2HightLimit
        /// </summary>
        public ClassParameterTechnologyST2HightLimit ClassParameterTechnologyST2HightLimit { get; set; } = new ClassParameterTechnologyST2HightLimit();
        /// <summary>
        /// 
        /// </summary>
        public ClassParameterTechnologyST5HightLimit ClassParameterTechnologyST5HightLimit { get; set; } = new ClassParameterTechnologyST5HightLimit();
        /// <summary>
        /// 
        /// </summary>
        public ClassParameterTechnologyST5PressLimit ClassParameterTechnologyST5PressLimit { get; set; } = new ClassParameterTechnologyST5PressLimit();
        /// <summary>
        /// ST6WeighLimit
        /// </summary>
        public ClassParameterTechnologyST6WeighLimit ClassParameterTechnologyST6WeighLimit { get; set; } = new ClassParameterTechnologyST6WeighLimit();
        /// <summary>
        /// ST10PressureLimit
        /// </summary>
        public ClassParameterTechnologyST10PressureLimit ClassParameterTechnologyST10PressureLimit { get; set; } = new ClassParameterTechnologyST10PressureLimit();
        /// <summary>
        /// ST11WeighLimit
        /// </summary>
        public ClassParamerterTechnologyST11WeighLimit ClassParamerterTechnologyST11WeighLimit { get; set; } = new ClassParamerterTechnologyST11WeighLimit();
        /// <summary>
        /// ST13HightLimit
        /// </summary>
        public ClassParameterTechnologyST13HightLimit ClassParameterTechnologyST13HightLimit { get; set; } = new ClassParameterTechnologyST13HightLimit();
        /// <summary>
        /// ST13PressureLimit
        /// </summary>
        public ClassParameterTechnologyST13PressureLimit ClassParameterTechnologyST13PressureLimit { get; set; } = new ClassParameterTechnologyST13PressureLimit();
        /// <summary>
        /// ST13ODLimit
        /// </summary>
        public ClassParameterTechnologyST13ODLimit ClassParameterTechnologyST13ODLimit { get; set; } = new ClassParameterTechnologyST13ODLimit();
        /// <summary>
        /// ST4 TemperatureLimit
        /// </summary>
        public ClassParameterTechnologyST4TemperatureLimit ClassParameterTechnologyST4TemperatureLimit { get; set; } = new ClassParameterTechnologyST4TemperatureLimit();
        /// <summary>
        /// humidness
        /// </summary>
        public ClassParameterTechnologyST4humidnessLimit ClassParameterTechnologyST4humidnessLimit { get; set; } = new ClassParameterTechnologyST4humidnessLimit();
        /// <summary>
        /// 火药报警基值
        /// </summary>
        public ClassOP20ParameterTechnologyPowderBaseValue ClassOP20ParameterTechnologyPowderBaseValue { get; set; } = new ClassOP20ParameterTechnologyPowderBaseValue();
    }
    /// <summary>
    /// op20寿命管控
    /// </summary>
    public class ClassOP20ParameterLifeControl
    {
        /// <summary>
        /// 寿命管控数组
        /// </summary>
        public int[] LifeControlArr { get; set; } = new int[6];
    }
    /// <summary>
    /// 工艺参数称重
    /// </summary>
    public class ClassOP20ParameterWeighTime
    {
        /// <summary>
        /// 称重时间
        /// </summary>
        public short[] WeighTimeArr { get; set; } = new short[3];
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20TestHigh
    {
        /// <summary>
        /// 校准值
        /// </summary>
        public float CalibrationValue { get; set; }
        /// <summary>
        /// 误差范围
        /// </summary>
        public float ErrorRange { get; set; }
        /// <summary>
        /// 稳定时间
        /// </summary>
        public short SettingTime { get; set; }
    }
    /// <summary>
    /// 工艺参数测高
    /// </summary>
    public class ClassOP20ParameterTestHigh
    {
        /// <summary>
        /// 
        /// </summary>
        public ClassOP20TestHigh[] ClassOP20TestHighArr_3 { get; set; } = new ClassOP20TestHigh[3]
        {
             new ClassOP20TestHigh(),
             new ClassOP20TestHigh(),
             new ClassOP20TestHigh()
        };
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20TestPress
    {
        /// <summary>
        /// 校准值
        /// </summary>
        public float CalibrationValue { get; set; }
        /// <summary>
        /// 误差范围
        /// </summary>
        public float ErrorRange { get; set; }
        /// <summary>
        /// 稳定时间
        /// </summary>
        public short SettingTime { get; set; }
        /// <summary>
        /// 保压时间
        /// </summary>
        public short DwellTime { get; set; }
    }
    /// <summary>
    /// 参数压力
    /// </summary>
    public class ClassOP20ParameterTechnologyPress
    {
        /// <summary>
        /// 
        /// </summary>
        public ClassOP20TestPress[] ClassOP20TestPressArr_3 { get; set; } = new ClassOP20TestPress[3]
        {
             new ClassOP20TestPress(),
             new ClassOP20TestPress(),
             new ClassOP20TestPress()
        };
    }
    /// <summary>
    /// 药仓取药等待时间
    /// </summary>
    public class ClassOP20ParameterWaitingTime
    {
        /// <summary>
        /// 药仓取药等待时间
        /// </summary>
        public short[] WaitingTimeArr { get; set; } = new short[5];
    }
    /// <summary>
    /// 参数连续NG数
    /// </summary>
    public class ClassOP20ParameterStationNG
    {
        /// <summary>
        /// 工站连续NG数设定
        /// </summary>
        public uint[] StationNGArr { get; set; } = new uint[30];
    }
    /// <summary>
    /// OP20伺服写
    /// </summary>
    public class ClassOP20ServoW
    {
        /// <summary>
        /// 
        /// </summary>
        public ClassServoW[] ClassOP20ServoWArr_4 { get; set; } = new ClassServoW[4]
        {
             new ClassServoW(),
             new ClassServoW(),
             new ClassServoW(),
             new ClassServoW()
        };
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20ServoR
    {
        /// <summary>
        /// 
        /// </summary>
        public ClassServoR[] ClassOP20ServoRArr_4 { get; set; } = new ClassServoR[4]
        {
             new ClassServoR(),
             new ClassServoR(),
             new ClassServoR(),
             new ClassServoR()
        };
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOtherDeviceTestValue
    {
        /// <summary>
        /// 当前值
        /// </summary>
        public float CurrentValue { get; set; }
        /// <summary>
        /// 结果值
        /// </summary>
        public float ResultValue { get; set; }
        /// <summary>
        /// 结果
        /// </summary>
        public bool[] Result { get; set; } = new bool[16];
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassPressureTestValue
    {
        /// <summary>
        /// 当前值
        /// </summary>
        public float CurrentValue { get; set; }
        /// <summary>
        /// 结果
        /// </summary>
        public bool[] Result { get; set; } = new bool[16];
    }
    /// <summary>
    /// 温湿度
    /// </summary>
    public class ClassHumiture
    {
        /// <summary>
        /// OD和温湿度OP20
        /// </summary>
        public float[] ODAndTemp { get; set; } = new float[6];
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOtherNeedleOperation
    {
        /// <summary>
        /// 结果
        /// </summary>
        public bool[] Result { get; set; } = new bool[16];
        /// <summary>
        /// 预留4
        /// </summary>
        public float[] ParaDataArr { get; set; } = new float[4];
    }
    /// <summary>
    /// 其他设备读
    /// </summary>
    public class ClassOtherDeviceR
    {
        /// <summary>
        /// 
        /// </summary>
        public ClassOtherDeviceTestValue[] ClassOtherDeviceArr_6 { get; set; } = new ClassOtherDeviceTestValue[6]
        {
             new ClassOtherDeviceTestValue(),
             new ClassOtherDeviceTestValue(),
             new ClassOtherDeviceTestValue(),
             new ClassOtherDeviceTestValue(),
             new ClassOtherDeviceTestValue(),
             new ClassOtherDeviceTestValue()
        };
        /// <summary>
        /// 
        /// </summary>
        public ClassPressureTestValue[] ClassPressureAndODArr_3 { get; set; } = new ClassPressureTestValue[3]
        {
                 new ClassPressureTestValue(),
                 new ClassPressureTestValue(),
                 new ClassPressureTestValue()
        };
        /// <summary>
        /// 温湿度
        /// </summary>
        public ClassHumiture ClassHumiture { get; set; } = new ClassHumiture();
        /// <summary>
        /// 
        /// </summary>
        public ClassOtherNeedleOperation ClassOtherNeedleOperation { get; set; } = new ClassOtherNeedleOperation();
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOtherDeviceW
    {
        /// <summary>
        /// 
        /// </summary>
        public bool[] WeighBoolArr { get; set; } = new bool[16];
        /// <summary>
        /// 
        /// </summary>
        public bool[] ST2HightBoolArr { get; set; } = new bool[16];
        /// <summary>
        /// 
        /// </summary>
        public bool[] ST5HightBoolArr { get; set; } = new bool[16];
        /// <summary>
        /// 
        /// </summary>
        public bool[] ST13HightBoolArr { get; set; } = new bool[16];
        /// <summary>
        /// 
        /// </summary>
        public bool[] ST5PressBoolArr { get; set; } = new bool[16];
        /// <summary>
        /// 
        /// </summary>
        public bool[] ST10PressBoolArr { get; set; } = new bool[16];
        /// <summary>
        /// 
        /// </summary>
        public bool[] ST13PressBoolArr { get; set; } = new bool[16];
        /// <summary>
        /// 结果
        /// </summary>
        public bool[] Result { get; set; } = new bool[16];
        /// <summary>
        /// 预留4
        /// </summary>
        public float[] ParaDataArr { get; set; } = new float[4];
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20SystemW
    {
        /// <summary>
        /// 系统BitW
        /// </summary>
        public bool[] System_BitW { get; set; } = new bool[16];
        /// <summary>
        /// 
        /// </summary>
        public bool[] OP20SystemPingBiBtn { get; set; } = new bool[64];
    }
    /// <summary>
    /// OP20气缸写
    /// </summary>
    public class ClassOP20CylinderArrW
    {
        /// <summary>
        /// OP20气缸写数组
        /// </summary>
        public ClassCylinderW[] ClassOP20CylinderWArr_60 { get; set; } = new ClassCylinderW[60]
        {
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW(),
             new ClassCylinderW()
        };
    }
    /// <summary>
    /// OP20气缸读
    /// </summary>
    public class ClassOP20CylinderArrR
    {
        /// <summary>
        /// OP20气缸读数组
        /// </summary>
        public ClassCylinderR[] ClassOP20CylinderRArr_60 { get; set; } = new ClassCylinderR[60]
        {
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR(),
             new ClassCylinderR()
        };
    }
    /// <summary>
    /// OP20工站校验
    /// </summary>
    public class ClassOP20Check
    {
        /// <summary>
        /// 工站检验
        /// </summary>
        public bool[] Check { get; set; } = new bool[16];
    }
    /// <summary>
    /// 工站校验
    /// </summary>
    public class ClassOP20CheckArrR
    {
        /// <summary>
        /// 工站校验读数组
        /// </summary>
        public ClassOP20Check[] ClassOP20CheckRArr_20 { get; set; } = new ClassOP20Check[20]
        {
             new ClassOP20Check(),
             new ClassOP20Check(),
             new ClassOP20Check(),
             new ClassOP20Check(),
             new ClassOP20Check(),
             new ClassOP20Check(),
             new ClassOP20Check(),
             new ClassOP20Check(),
             new ClassOP20Check(),
             new ClassOP20Check(),
             new ClassOP20Check(),
             new ClassOP20Check(),
             new ClassOP20Check(),
             new ClassOP20Check(),
             new ClassOP20Check(),
             new ClassOP20Check(),
             new ClassOP20Check(),
             new ClassOP20Check(),
             new ClassOP20Check(),
             new ClassOP20Check()
        };
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20IOR
    {
        /// <summary>
        /// 
        /// </summary>
        public bool[] OP20IO_R { get; set; } = new bool[480];
    }
    /// <summary>
    /// OP10ST3数据上报事件PLC
    /// </summary>
    public class ClassOP10EventSt3R
    {
        /// <summary>
        /// 读事件基对象
        /// </summary>
        public ClassBaseEventR ClassBaseEventR { get; set; } = new ClassBaseEventR();
        /// <summary>
        /// 玻璃体宽度
        /// </summary>
        public float GlassWidth { get; set; }
        /// <summary>
        /// 焊点中心到玻璃体距离
        /// </summary>
        public float GlassPointDis { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP30StationArrW
    {
        /// <summary>
        /// 
        /// </summary>
        public ClassStationW[] ClassOP30StationWArr_17 { get; set; } = new ClassStationW[17]
        {
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW(),
             new ClassStationW()
        };
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP30StationArrR
    {
        /// <summary>
        /// 
        /// </summary>
        public ClassStationR[] ClassOP30StationRArr_17 { get; set; } = new ClassStationR[17]
        {
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR(),
             new ClassStationR()
        };
    }
    /// <summary>
    /// OP10ST3数据上报事件Eap
    /// </summary>
    public class ClassOP10EventSt3W
    {
        /// <summary>
        /// 写事件基对象
        /// </summary>
        public ClassBaseEventW ClassBaseEventW { get; set; } = new ClassBaseEventW();
    }
    /// <summary>
    /// OP10ST5数据上报事件PLC
    /// </summary>
    public class ClassOP10EventSt5R
    {
        /// <summary>
        /// 读事件基对象
        /// </summary>
        public ClassBaseEventR ClassBaseEventR { get; set; } = new ClassBaseEventR();
        /// <summary>
        /// 桥丝长度
        /// </summary>
        public float WireLen { get; set; }
        /// <summary>
        /// Body焊点宽度
        /// </summary>
        public float BodyPointWidth { get; set; }
        /// <summary>
        /// Pin焊点宽度
        /// </summary>
        public float PinPointWidth { get; set; }
        /// <summary>
        /// Body焊点长度
        /// </summary>
        public float BodyPointLen { get; set; }
        /// <summary>
        /// Pin焊点长度
        /// </summary>
        public float PinPointLen { get; set; }
        /// <summary>
        /// Body焊点到玻璃体距离
        /// </summary>
        public float BodyPointDis { get; set; }
        /// <summary>
        /// Pin焊点到玻璃体距离
        /// </summary>
        public float PinPointDis { get; set; }
        /// <summary>
        /// 焊点到玻璃体距离之和
        /// </summary>
        public float PointDis { get; set; }
    }
    /// <summary>
    /// OP10ST5数据上报事件Eap
    /// </summary>
    public class ClassOP10EventSt5W
    {
        /// <summary>
        /// 写事件基对象
        /// </summary>
        public ClassBaseEventW ClassBaseEventW { get; set; } = new ClassBaseEventW();
    }
    /// <summary>
    /// OP10ST6数据上报事件Plc
    /// </summary>
    public class ClassOP10EventSt6R
    {
        /// <summary>
        /// 读事件基对象
        /// </summary>
        public ClassBaseEventR ClassBaseEventR { get; set; } = new ClassBaseEventR();
        /// <summary>
        /// 电阻值
        /// </summary>
        public float Resis { get; set; }
    }
    /// <summary>
    /// OP10ST6数据上报事件Eap
    /// </summary>
    public class ClassOP10EventSt6W
    {
        /// <summary>
        /// 写事件基对象
        /// </summary>
        public ClassBaseEventW ClassBaseEventW { get; set; } = new ClassBaseEventW();
    }
    /// <summary>
    /// OP10ST7数据上报事件Plc
    /// </summary>
    public class ClassOP10EventSt7R
    {
        /// <summary>
        /// 读事件基对象
        /// </summary>
        public ClassBaseEventR ClassBaseEventR { get; set; } = new ClassBaseEventR();
        /// <summary>
        /// 载具号
        /// </summary>
        public short OP10Data_CarrierID { get; set; }
        /// <summary>
        /// 玻璃体宽度
        /// </summary>
        public float OP10Data_ST3GlassWidth { get; set; }
        /// <summary>
        /// 焊点中心到玻璃体距离
        /// </summary>
        public float OP10Data_ST3GlassPointDis { get; set; }
        /// <summary>
        /// St3焊点检测状态
        /// </summary>
        public short OP10Data_ST3CheckOK { get; set; }
        /// <summary>
        /// St4左Body焊接平均电压
        /// </summary>
        public float OP10Data_Body_AveV { get; set; }
        /// <summary>
        /// St4左Body焊接平均电流
        /// </summary>
        public float OP10Data_Body_AveI { get; set; }
        /// <summary>
        /// St4左Body焊接平均功率
        /// </summary>
        public float OP10Data_Body_AveW { get; set; }
        /// <summary>
        /// St4左Body焊接电阻
        /// </summary>
        public float OP10Data_Body_R { get; set; }
        /// <summary>
        /// St4左Body焊接峰值电压
        /// </summary>
        public float OP10Data_Body_PeakV { get; set; }
        /// <summary>
        /// St4左Body焊接峰值电流
        /// </summary>
        public float OP10Data_Body_PeakI { get; set; }
        /// <summary>
        /// St4左Body焊接峰值功率
        /// </summary>
        public float OP10Data_Body_PeakW { get; set; }
        /// <summary>
        /// St4左Body焊接高度
        /// </summary>
        public int OP10Data_Body_WeldHeigh { get; set; }
        /// <summary>
        /// St4左Body焊接压力
        /// </summary>
        public float OP10Data_Body_Pressure { get; set; }
        /// <summary>
        /// St4右Pin焊接平均电压
        /// </summary>
        public float OP10Data_Pin_AveV { get; set; }
        /// <summary>
        /// St4右Pin焊接平均电流
        /// </summary>
        public float OP10Data_Pin_AveI { get; set; }
        /// <summary>
        /// St4右Pin焊接平均功率
        /// </summary>
        public float OP10Data_Pin_AveW { get; set; }
        /// <summary>
        /// St4右Pin焊接电阻
        /// </summary>
        public float OP10Data_Pin_R { get; set; }
        /// <summary>
        /// St4右Pin焊接峰值电压
        /// </summary>
        public float OP10Data_Pin_PeakV { get; set; }
        /// <summary>
        /// St4右Pin焊接峰值电流
        /// </summary>
        public float OP10Data_Pin_PeakI { get; set; }
        /// <summary>
        /// St4右Pin焊接峰值功率
        /// </summary>
        public float OP10Data_Pin_PeakW { get; set; }
        /// <summary>
        /// St4右Pin焊接高度
        /// </summary>
        public int OP10Data_Pin_WeldHeigh { get; set; }
        /// <summary>
        /// St4右Pin焊接压力
        /// </summary>
        public float OP10Data_Pin_Pressure { get; set; }
        /// <summary>
        /// St4焊接状态
        /// </summary>
        public short OP10Data_ST4PartOKW { get; set; }
        /// <summary>
        /// St5右焊点宽度
        /// </summary>
        public float OP10Data_RightPoint_Width { get; set; }
        /// <summary>
        /// St5左焊点宽度
        /// </summary>
        public float OP10Data_LeftPoint_Width { get; set; }
        /// <summary>
        /// St5右焊点长度
        /// </summary>
        public float OP10Data_RightPoint_Len { get; set; }
        /// <summary>
        /// St5左焊点长度
        /// </summary>
        public float OP10Data_LeftPoint_Len { get; set; }
        /// <summary>
        /// St5桥丝长度
        /// </summary>
        public float OP10Data_Wire_Len { get; set; }
        /// <summary>
        /// St5右焊点到玻璃体距离
        /// </summary>
        public float OP10Data_RightPoint_Dis { get; set; }
        /// <summary>
        /// St5左焊点到玻璃体距离
        /// </summary>
        public float OP10Data_LeftPoint_Dis { get; set; }
        /// <summary>
        /// St5焊点到玻璃体距离之和
        /// </summary>
        public float OP10Data_Point_Dis { get; set; }
        /// <summary>
        /// St5桥丝检测结果
        /// </summary>
        public short OP10Data_ST5PartOKW { get; set; }
        /// <summary>
        /// St6电阻值
        /// </summary>
        public float OP10Data_Resist { get; set; }
        /// <summary>
        /// St6电阻值检测结果
        /// </summary>
        public short OP10Data_ST6PartOKW { get; set; }
        /// <summary>
        /// 产品总结果
        /// </summary>
        public short OP10Data_ProductResult { get; set; }
    }
    /// <summary>
    /// OP10ST7数据上报事件Eap
    /// </summary>
    public class ClassOP10EventSt7W
    {
        /// <summary>
        /// 写事件基对象
        /// </summary>
        public ClassBaseEventW ClassBaseEventW { get; set; } = new ClassBaseEventW();
    }
    /// <summary>
    /// OP20振动盘
    /// </summary>
    public class ClassOP20VibratingArrW
    {
        /// <summary>
        /// Op20振动盘启停bool数组
        /// </summary>
        public bool[] OP20VibratingArr { get; set; } = new bool[32];
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP10CylinderW
    {
        /// <summary>
        /// 
        /// </summary>
        public ClassCylinderArrW[] ClassOP10StationCylinderArrW_15 { get; set; } = new ClassCylinderArrW[15]
        {
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW()
        };
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP10CylinderR
    {
        /// <summary>
        /// 
        /// </summary>
        public ClassCylinderArrR[] ClassOP10StationCylinderR_15 { get; set; } = new ClassCylinderArrR[15]
        {
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR()
        };
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20CylinderW
    {
        /// <summary>
        /// 
        /// </summary>
        public ClassCylinderArrW[] ClassOP20StationCylinderW_15 { get; set; } = new ClassCylinderArrW[15]
        {
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW()
        };
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20CylinderR
    {
        /// <summary>
        /// 
        /// </summary>
        public ClassCylinderArrR[] ClassOP20StationCylinderR_15 { get; set; } = new ClassCylinderArrR[15]
        {
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR()
        };
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP30CylinderW
    {
        /// <summary>
        /// 
        /// </summary>
        public ClassCylinderArrW[] ClassOP30StationCylinderW_17 { get; set; } = new ClassCylinderArrW[17]
        {
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW(),
             new ClassCylinderArrW()
        };
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP30CylinderR
    {
        /// <summary>
        /// 
        /// </summary>
        public ClassCylinderArrR[] ClassOP30StationCylinderR_17 { get; set; } = new ClassCylinderArrR[17]
        {
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR(),
             new ClassCylinderArrR()
        };
    }
    /// <summary>
    /// OP20ST1事件R
    /// </summary>
    public class ClassOP20EventSt1R
    {
        /// <summary>
        /// 读事件基对象
        /// </summary>
        public ClassBaseEventR ClassBaseEventR { get; set; } = new ClassBaseEventR();
        /// <summary>
        /// ST1管壳重量
        /// </summary>
        public float St1Weigh { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20EventSt1W
    {
        /// <summary>
        /// 写事件基对象
        /// </summary>
        public ClassBaseEventW ClassBaseEventW { get; set; } = new ClassBaseEventW();
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20EventSt2R
    {
        /// <summary>
        /// 读事件基对象
        /// </summary>
        public ClassBaseEventR ClassBaseEventR { get; set; } = new ClassBaseEventR();
        /// <summary>
        /// ST2管壳高度
        /// </summary>
        public float St2Hight { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20EventSt2W
    {
        /// <summary>
        /// 写事件基对象
        /// </summary>
        public ClassBaseEventW ClassBaseEventW { get; set; } = new ClassBaseEventW();
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20EventSt5R
    {
        /// <summary>
        /// 读事件基对象
        /// </summary>
        public ClassBaseEventR ClassBaseEventR { get; set; } = new ClassBaseEventR();
        /// <summary>
        /// ST5压药压力
        /// </summary>
        public float St5Pressure { get; set; }
        /// <summary>
        /// ST5一道药药高
        /// </summary>
        public float St5Hight { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20EventSt5W
    {
        /// <summary>
        /// 写事件基对象
        /// </summary>
        public ClassBaseEventW ClassBaseEventW { get; set; } = new ClassBaseEventW();
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20EventSt6R
    {
        /// <summary>
        /// 读事件基对象
        /// </summary>
        public ClassBaseEventR ClassBaseEventR { get; set; } = new ClassBaseEventR();
        /// <summary>
        /// ST6一道药重量
        /// </summary>
        public float St6Weigh { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20EventSt6W
    {
        /// <summary>
        /// 写事件基对象
        /// </summary>
        public ClassBaseEventW ClassBaseEventW { get; set; } = new ClassBaseEventW();
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20EventSt10R
    {
        /// <summary>
        /// 读事件基对象
        /// </summary>
        public ClassBaseEventR ClassBaseEventR { get; set; } = new ClassBaseEventR();
        /// <summary>
        /// ST10压力
        /// </summary>
        public float St10Pressure { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20EventSt10W
    {
        /// <summary>
        /// 写事件基对象
        /// </summary>
        public ClassBaseEventW ClassBaseEventW { get; set; } = new ClassBaseEventW();
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20EventSt11R
    {
        /// <summary>
        /// 读事件基对象
        /// </summary>
        public ClassBaseEventR ClassBaseEventR { get; set; } = new ClassBaseEventR();
        /// <summary>
        /// ST11净重药量
        /// </summary>
        public float St11Weigh { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20EventSt11W
    {
        /// <summary>
        /// 写事件基对象
        /// </summary>
        public ClassBaseEventW ClassBaseEventW { get; set; } = new ClassBaseEventW();
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20EventSt13R
    {
        /// <summary>
        /// 读事件基对象
        /// </summary>
        public ClassBaseEventR ClassBaseEventR { get; set; } = new ClassBaseEventR();
        /// <summary>
        /// ST13压合压力
        /// </summary>
        public float St13Pressure { get; set; }
        /// <summary>
        /// ST13压合高度
        /// </summary>
        public float St13Hight { get; set; }
        /// <summary>
        /// ST13外径
        /// </summary>
        public float St13Od { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20EventSt13W
    {
        /// <summary>
        /// 写事件基对象
        /// </summary>
        public ClassBaseEventW ClassBaseEventW { get; set; } = new ClassBaseEventW();
    }
    /// <summary>
    /// 数据统一上报事件
    /// </summary>
    public class ClassOP20EventSt14R
    {
        /// <summary>
        /// 读事件基对象
        /// </summary>
        public ClassBaseEventR ClassBaseEventR { get; set; } = new ClassBaseEventR();
        /// <summary>
        /// 载具号
        /// </summary>
        public short OP20Data_CarrierID { get; set; }
        /// <summary>
        /// 有无料 Bit[0]
        /// </summary>
        public bool[] OP20Data_MaterialBit { get; set; } = new bool[16];
        /// <summary>
        /// 总结果
        /// </summary>
        public ushort OP20Data_Result { get; set; }
        /// <summary>
        /// PLC内部使用，不采集
        /// </summary>
        public bool[] OP20Data_Bit { get; set; } = new bool[16];
        /// <summary>
        /// ST1管壳重量
        /// </summary>
        public float OP20Data_St1Weigh { get; set; }
        /// <summary>
        /// ST1管壳重量测试结果
        /// </summary>
        public ushort OP20Data_St1WeighResult { get; set; }
        /// <summary>
        /// ST2管壳高度
        /// </summary>
        public float OP20Data_St2Hight { get; set; }
        /// <summary>
        /// ST2管壳高度结果
        /// </summary>
        public ushort OP20Data_St2HightResult { get; set; }
        /// <summary>
        /// ST5一道药药高
        /// </summary>
        public float OP20Data_St5Hight { get; set; }
        /// <summary>
        /// ST5压药压力
        /// </summary>
        public float OP20Data_St5Pressure { get; set; }
        /// <summary>
        /// ST5一道药药高结果
        /// </summary>
        public ushort OP20Data_St5HightResult { get; set; }
        /// <summary>
        /// ST5压药压力结果
        /// </summary>
        public ushort OP20Data_St5PressureResult { get; set; }
        /// <summary>
        /// ST5总测试结果
        /// </summary>
        public ushort OP20Data_St5Result { get; set; }
        /// <summary>
        /// ST6一道药重量
        /// </summary>
        public float OP20Data_St6Weigh { get; set; }
        /// <summary>
        /// ST6一道药重量结果
        /// </summary>
        public ushort OP20Data_St6WeighResult { get; set; }
        /// <summary>
        /// ST10压力
        /// </summary>
        public float OP20Data_St10Pressure { get; set; }
        /// <summary>
        /// ST10压力结果
        /// </summary>
        public ushort OP20Data_St10PressureResult { get; set; }
        /// <summary>
        /// ST11净重药量
        /// </summary>
        public float OP20Data_St11Weigh { get; set; }
        /// <summary>
        /// ST11净重药量结果
        /// </summary>
        public ushort OP20Data_St11WeighResult { get; set; }
        /// <summary>
        /// ST13压合高度
        /// </summary>
        public float OP20Data_St13Hight { get; set; }
        /// <summary>
        /// ST13压合压力
        /// </summary>
        public float OP20Data_St13Pressure { get; set; }
        /// <summary>
        /// ST13外径
        /// </summary>
        public float OP20Data_St13Od { get; set; }
        /// <summary>
        /// ST13压合高度结果
        /// </summary>
        public ushort OP20Data_St13HightResult { get; set; }
        /// <summary>
        /// ST13压合压力结果
        /// </summary>
        public ushort OP20Data_St13PressureResult { get; set; }
        /// <summary>
        /// ST13外径结果
        /// </summary>
        public ushort OP20Data_St13OdResult { get; set; }
        /// <summary>
        /// ST13总测试结果
        /// </summary>
        public ushort OP20Data_St13Result { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20EventSt14W
    {
        /// <summary>
        /// 写事件基对象
        /// </summary>
        public ClassBaseEventW ClassBaseEventW { get; set; } = new ClassBaseEventW();
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP30EventSt3R
    {
        /// <summary>
        /// 读事件基对象
        /// </summary>
        public ClassBaseEventR ClassBaseEventR { get; set; } = new ClassBaseEventR();
        /// <summary>
        /// ST3针间距
        /// </summary>
        public float PinWidth { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP30EventSt3W
    {
        /// <summary>
        /// 写事件基对象
        /// </summary>
        public ClassBaseEventW ClassBaseEventW { get; set; } = new ClassBaseEventW();
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP30EventSt5R
    {
        /// <summary>
        /// 读事件基对象
        /// </summary>
        public ClassBaseEventR ClassBaseEventR { get; set; } = new ClassBaseEventR();
        /// <summary>
        /// ST5焊接压力
        /// </summary>
        public float WeldPress { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP30EventSt5W
    {
        /// <summary>
        /// 写事件基对象
        /// </summary>
        public ClassBaseEventW ClassBaseEventW { get; set; } = new ClassBaseEventW();
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP30EventSt11R
    {
        /// <summary>
        /// 读事件基对象
        /// </summary>
        public ClassBaseEventR ClassBaseEventR { get; set; } = new ClassBaseEventR();
        /// <summary>
        /// ST11焊接面积
        /// </summary>
        public float WeldArea { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP30EventSt11W
    {
        /// <summary>
        /// 写事件基对象
        /// </summary>
        public ClassBaseEventW ClassBaseEventW { get; set; } = new ClassBaseEventW();
    }
    /// <summary>
    /// 数据上报
    /// </summary>
    public class ClassOP30EventSt13R
    {
        /// <summary>
        /// 读事件基对象
        /// </summary>
        public ClassBaseEventR ClassBaseEventR { get; set; } = new ClassBaseEventR();
        /// <summary>
        /// 载具号
        /// </summary>
        public short OP30Data_CarrierID { get; set; }
        /// <summary>
        /// ST3针间距
        /// </summary>
        public float OP30Data_PinWidth { get; set; }
        /// <summary>
        /// ST3针间距结果
        /// </summary>
        public ushort OP30Data_PinWidthResult { get; set; }
        /// <summary>
        /// ST5焊接压力
        /// </summary>
        public float OP30Data_WeldPress { get; set; }
        /// <summary>
        /// ST5焊接压力结果
        /// </summary>
        public ushort OP30Data_WeldPressResult { get; set; }
        /// <summary>
        /// ST11焊接面积
        /// </summary>
        public float OP30Data_WeldArea { get; set; }
        /// <summary>
        /// ST11焊接面积结果
        /// </summary>
        public ushort OP30Data_WeldAreaResult { get; set; }
        /// <summary>
        /// 产品总结果
        /// </summary>
        public ushort OP30Data_Result { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP20TurntableR
    {
        /// <summary>
        /// 转盘BitR
        /// </summary>
        public bool[] Turntable_BitR { get; set; } = new bool[8];
        /// <summary>
        /// 转盘位置代码
        /// </summary>
        public byte Turntable_PosCodeR { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public bool[] TurntableEnable { get; set; } = new bool[8];
        /// <summary>
        ///  转盘自动位置
        /// </summary>
        public byte AutoStationCode { get; set; }
    }
    /// <summary>
    /// 
    /// </summary>
    public class ClassOP30EventSt13W
    {
        /// <summary>
        /// 写事件基对象
        /// </summary>
        public ClassBaseEventW ClassBaseEventW { get; set; } = new ClassBaseEventW();
    }
    /// <summary>
    /// OP20压力设置
    /// </summary>
    public class ClassOP20SetPressure
    {
        /// <summary>
        /// 
        /// </summary>
        public float[] OP20SetPressureArr { get; set; } = new float[3];
    }
    /// <summary>
    /// 火药报警基值
    /// </summary>
    public class ClassOP20ParameterTechnologyPowderBaseValue
    {
        /// <summary>
        /// ST4火药报警基值
        /// </summary>
        public short ST4PowderBaseValue { get; set; }
        /// <summary>
        /// ST8火药报警基值
        /// </summary>
        public short ST8PowderBaseValue { get; set; }
    }
    /// <summary>
    /// OP10基本信息R
    /// </summary>
    public class ClassOP10SystemInfoR
    {
        /// <summary>
        /// 工段号
        /// </summary>
        public ushort SectionID { get; set; }
        /// <summary>
        /// 机台编号
        /// </summary>
        public ushort MachineID { get; set; }
        /// <summary>
        /// 温度1
        /// </summary>
        public float T1 { get; set; }
        /// <summary>
        /// 湿度1
        /// </summary>
        public float H1 { get; set; }
        /// <summary>
        /// 配方接收完成 0/1
        /// </summary>
        public short LoadOk { get; set; }
    }
    /// <summary>
    /// OP10基本信息W
    /// </summary>
    public class ClassOP10SystemInfoW
    {
        /// <summary>
        /// 使能
        /// </summary>
        public short Comand { get; set; }
        /// <summary>
        /// 型号
        /// </summary>
        public short PartCode { get; set; }
    }
    /// <summary>
    /// OP20基本信息R
    /// </summary>
    public class ClassOP20SystemInfoR
    {
        /// <summary>
        /// 工段号
        /// </summary>
        public ushort SectionID { get; set; }
        /// <summary>
        /// 机台编号
        /// </summary>
        public ushort MachineID { get; set; }
        /// <summary>
        /// 温度1
        /// </summary>
        public float T1 { get; set; }
        /// <summary>
        /// 湿度1
        /// </summary>
        public float H1 { get; set; }
        /// <summary>
        /// 温度2
        /// </summary>
        public float T2 { get; set; }
        /// <summary>
        /// 湿度2
        /// </summary>
        public float H2 { get; set; }
        /// <summary>
        /// 配方接收完成 0/1
        /// </summary>
        public short LoadOk { get; set; }
    }
    /// <summary>
    /// OP20基本信息W
    /// </summary>
    public class ClassOP20SystemInfoW
    {
        /// <summary>
        /// 使能
        /// </summary>
        public short Comand { get; set; }
        /// <summary>
        /// 型号
        /// </summary>
        public short PartCode { get; set; }
    }
    /// <summary>
    /// OP30基本信息R
    /// </summary>
    public class ClassOP30SystemInfoR
    {
        /// <summary>
        /// 工段号
        /// </summary>
        public ushort SectionID { get; set; }
        /// <summary>
        /// 机台编号
        /// </summary>
        public ushort MachineID { get; set; }
        /// <summary>
        /// 温度1
        /// </summary>
        public float T1 { get; set; }
        /// <summary>
        /// 湿度1
        /// </summary>
        public float H1 { get; set; }
        /// <summary>
        /// 配方接收完成 0/1
        /// </summary>
        public short LoadOk { get; set; }
    }
    /// <summary>
    /// OP30基本信息W
    /// </summary>
    public class ClassOP30SystemInfoW
    {
        /// <summary>
        /// 使能
        /// </summary>
        public short Comand { get; set; }
        /// <summary>
        /// 型号
        /// </summary>
        public short PartCode { get; set; }
    }
    /// <summary>
    /// OP20感应器参数
    /// </summary>
    public class ClassOP20ParameterSensor
    {
        /// <summary>
        /// OP20感应器屏蔽
        /// </summary>
        public bool[] OP20_P_I_ByPassArr { get; set; } = new bool[32];
        /// <summary>
        /// OP20感应器延时
        /// </summary>
        public int[] OP20_P_I_DelayArr { get; set; } = new int[32];
    }
}
